



const fs = require('fs')





// fs.readFile('为学.txt',(err,data)=>{
//     fs.readFile('weixue.txt',(err,data1)=>{
//         fs.readFile('weixue01.txt',(err,data2)=>{
//             //具有递进关系，回调地狱，代码进行凹进
//             let res = data +'\r\n'+ data1 +'\r\n'+data2
//             console.log(res)
//         })
//     })
// })



/**
 * Promise的then方法:
 *      指定回调函数
 *    then()方法的返回结果也是一个Promise对象
 *    对象状态由回调函数的指定结果来决定：
 *  回调函数返回结果是：
 *      1.非Promise的类型数据  如：number、string、undefined其他等等
 *          =>状态均返回   resolve()成功
 *      2.是一个Promise对象=>
 *              返回Promise的执行结果，
 *              =>抛出错误返回的是reject
 * 
 *          =>表示可以链式调用，可以避免回调地狱
 * 
 * 
 *  根据如上需求，进行使用Promise来进行编写代码：
 * 
 */


const p1 = new Promise((resolve,reject)=>{
    fs.readFile('为学.txt',(err,data)=>{
        if(err){
            reject(err)
        }
        resolve(data)
    })
})


p1.then(value =>{
    return new Promise((resolve,reject)=>{
        fs.readFile('weixue.txt',(err,data)=>{
            if(err){
                reject(err)
            }
            resolve([value,data])
        })
    })
}).then(value =>{
    return new Promise((resolve,reject)=>{
        fs.readFile('weixue01.txt',(err,data)=>{
            if(err){
                reject(err)
            }
            value.push(data)
            resolve(value)
        })
    })
}).then(value=>{
    console.log(value.join('\r\n'));
})

